package cn.byapps.core.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import javax.servlet.http.HttpServletRequest;

/**
 * 
 * 
 * @ClassName DownloadCodeFileNameUtil
 * @Description
 * @author
 * @date 2018年4月7日
 */
public class ServletDownloadUtil {

	/**
	 * servlet文件下载，不同浏览器文件名乱码编码
	 * 
	 * @param已测试 谷歌 火狐，猎豹，IE,Edge,
	 * @param request
	 * @param fileName
	 *            文件名称
	 * @return String 返回处理过的文件名称
	 * @throws UnsupportedEncodingException
	 */
	public static String downCodeFileName(HttpServletRequest request, String fileName)
			throws UnsupportedEncodingException {
		String userAgent = request.getHeader("User-Agent");
		// 针对IE或者以IE为内核的浏览器：
		if (userAgent.contains("MSIE") || userAgent.contains("Trident") || userAgent.contains("Edge")) {
			fileName = URLEncoder.encode(fileName, "UTF-8");
		} else {
			// 非IE浏览器的处理：
			fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
		}
		// byte[] bytes = fileName.getBytes("UTF-8");
		// // 各浏览器基本都支持ISO编码
		// fileName = new String(bytes, "ISO-8859-1");

		return fileName;
	}
}
